Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 3


В данном уроке мы рассмотрим реализацию слайдера в шапке сайта с помощью компонента 1С-Битрикс.

Для начала мы пометим весь слайдер во включаемую область для страницы. Этим мы решим проблему отображения слайдера на главной странице и не отображения на внутренних - при необходимости вывода включаемой области на других страницах мы создадим отдельные файлы включаемых областей.

Код слайдера:

<div class="slider">
<div class="camera_wrap">
<div data-src="<?=SITE_TEMPLATE_PATH?>/img/slide1.jpg"></div>
<div data-src="<?=SITE_TEMPLATE_PATH?>/img/slide2.jpg"></div>
<div data-src="<?=SITE_TEMPLATE_PATH?>/img/slide3.jpg"></div>
</div>
</div>

Код включаемой области:

<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "page",
"AREA_FILE_SUFFIX" => "slider",
"EDIT_TEMPLATE" => ""
)
);?>

Код слайдера в шаблоне заменяем кодом включаемой области и переносим в файл index_slider.php в корне сайта (мы будем показывать слайдер только на главной странице).


Создание компонента слайдера

Мы создадим очень простой компонент слайдера. Для начала создадим пустую страницу, например, 1.php где разместим компонент bitrix:news.list.

Подготовка данные (создание и заполнение инфоблока)

Поскольку у нас до сих пор не было ни одного инфоблока, создадим тип инфоблока Template:

создание типа инфоблока

создание типа инфоблока

Создадим инфоблок в новом типе:

создание инфоблока

Основные настройки для данного инфоблока будут:

  • Инфоблок будет активен
  • Символьный код - MAIN_SLIDER
  • Выберем один из сайтов системы в качестве сайта по умолчанию (тот, где будет использоваться слайдер)
  • Уберём галочки индексации разделов и элементов для поиска (нет смысла искать слайдер)
  • Поставим совместных режим просмотра элементов и разделов (это сугубо личное предпочтение автора урока)
  • Дадим доступ на чтение тем группам пользователей, которым он необходим. Если вы работаете над уже запущенным проектом в скрытом разделе, то возможно доступ для всех и не нужен. Однако мы сразу установим чтение для всех, в том числе неавторизованных юзеров, чтобы не возвращаться потом к этому вопросу.

основные настройки инфоблока слайдера

настройки доступа инфоблока сладйера

Теперь в новом инфоблоке необходимо создать активные элементы, соответствующие слайдам.

Можно создать руками все элементы:

создание элемента инфоблока слайдера

Важно при этом не забыть:

  • поставить галочку активности элементов
  • заполнить название (это обязательный пункт), например порядковым номером слайдера
  • в поле "картинка для анонса" приложить изображение

Для этого урока нами был создан вручную только 1 элемент. Далее мы экспортировали его в XML и добавили информацию о ещё 2 слайдах. Вы можете найти файлы для импорт (XML и картинки) в нашем репозитории на GitHub.

импорт элементов инфоблока из XML

Интеграция дизайна слайдера в шаблон компонента bitrix:news.list

Разместим на странице 1.php, которую мы создали выше для этих целей компонент:

<?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"",
Array(
"IBLOCK_ID" => "MAIN_SLIDER"
),
false
);?>

Обращаем внимание на выделенную красным строку - мы сразу задаём в параметрах компонента КОД информационного блока!

Поскольку ваша сборка 1С-Битиркс может отличаться от той на которой делается данный урок, то у вас уже могли быть ранее созданы инфоблоки и ID не совпадает с нашим. Если вы следовали нашим инструкциям выше, то символьный код у вас будет идентичен нашему.

Копируем шаблон компонента дефолтный шаблон компонента списка новостей в шаблон сайта:

копируем системный шаблон компонента .default в шаблон сайта

Теперь модифицируем шаблон компонента списка новостей /bitrix/templates/stylish/components/bitrix/news.list/main_slider/template.php:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<div class="slider">
<div class="camera_wrap">
<?foreach($arResult["ITEMS"] as $arItem):?>
<div data-src="<?=$arItem["PREVIEW_PICTURE"]["SRC"]?>"></div>
<?endforeach;?>
</div>
</div>

Как видите, мы удалили всё лишнее и оставили только самое необходимое:

  • подключение пролога
  • разметку вокруг баннерного блока
  • цикл для непосредственного вывода баннеров
  • вывод картинки анонса

Поскольку слайдер выводится только на одной из страниц HTML вёрстки, то мы поместим вызов компонента слайдера во включаемую область, применяемую для файла.

Теперь осталось поместить код вызова компонента слайдера в файл включаемой области index_slider.php (собственно имя файла включаемой области состоит из имени файла для которого включаемая область отображается и идентификатора, который используется в вызове компонента включаемой области):

<?$APPLICATION->IncludeComponent("bitrix:news.list", "main_slider", Array(
"IBLOCK_ID" => "MAIN_SLIDER", // Код информационного блока
),
false
);?>

ВАЖНО! Не забудьте удалить файл (1.php в нашем случае) в котором велась разработка, когда он перестанет быть нужен! 

В шаблоне же необходимо вызвать компонент:

<?$APPLICATION->IncludeComponent(
"bitrix:main.include",
"",
Array(
"AREA_FILE_SHOW" => "page",
"AREA_FILE_SUFFIX" => "slider",
"EDIT_TEMPLATE" => ""
)
);?>

 

Не забудьте удалить из папки /img/ в шаблоне сайта картики баннеров для слайда (slide1.jpg, slide2.jpg, slide3.jpg) - теперь слайды берутся компонентом из инфоблока!


Результаты работы данного урока, как всегда, можно скачать на GitHub.


Интеграция адаптивного Bootstrap шаблона сайта в 1С-Битрикс по шагам - УРОК 3

<p style="text-align: justify;">В данном уроке мы рассмотрим реализацию слайдера в шапке сайта с помощью компонента 1С-Битрикс.</p> <p style="text-align: justify;">Для начала мы пометим весь слайдер во включаемую область для страницы. Этим мы решим проблему отображения слайдера на главной странице и не отображения на внутренних - при необходимости вывода включаемой области на других страницах мы создадим отдельные файлы включаемых областей.</p> <p>Код слайдера:</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;div class=&quot;slider&quot;&gt; <br /> &lt;div class=&quot;camera_wrap&quot;&gt; <br /> &lt;div data-src=&quot;&lt;?=SITE_TEMPLATE_PATH?&gt;/img/slide1.jpg&quot;&gt;&lt;/div&gt; <br /> &lt;div data-src=&quot;&lt;?=SITE_TEMPLATE_PATH?&gt;/img/slide2.jpg&quot;&gt;&lt;/div&gt; <br /> &lt;div data-src=&quot;&lt;?=SITE_TEMPLATE_PATH?&gt;/img/slide3.jpg&quot;&gt;&lt;/div&gt; <br /> &lt;/div&gt; <br /> &lt;/div&gt;</td></tr> </tbody> </table> <p style="text-align: justify;"> Код включаемой области:</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;?$APPLICATION-&gt;IncludeComponent( <br /> &quot;bitrix:main.include&quot;, <br /> &quot;&quot;, <br /> Array( <br /> &quot;AREA_FILE_SHOW&quot; =&gt; &quot;page&quot;, <br /> &quot;AREA_FILE_SUFFIX&quot; =&gt; &quot;slider&quot;, <br /> &quot;EDIT_TEMPLATE&quot; =&gt; &quot;&quot; <br /> ) <br /> );?&gt;</td></tr> </tbody> </table> <p style="text-align: justify;">Код слайдера в шаблоне заменяем кодом включаемой области и переносим в файл index_slider.php в корне сайта (мы будем показывать слайдер только на главной странице).</p> <p> <br /> </p> <h2>Создание компонента слайдера</h2> <p style="text-align: justify;">Мы создадим очень простой компонент слайдера. Для начала создадим пустую страницу, например, 1.php где разместим компонент bitrix:news.list.</p> <h3>Подготовка данные (создание и заполнение инфоблока)</h3> <p style="text-align: justify;">Поскольку у нас до сих пор не было ни одного инфоблока, создадим тип инфоблока Template:</p> <p><img src="/upload/medialibrary/b28/b284ce9d22967305f0ab1f004c7d552e.png" title="создание типа инфоблока" hspace="5" vspace="5" border="0" alt="создание типа инфоблока" width="700" height="242" /></p> <p><img src="/upload/medialibrary/a59/a598373be41f1676bea922e77d6fee86.png" title="создание типа инфоблока" hspace="5" vspace="5" border="0" alt="создание типа инфоблока" width="700" height="329" /></p> <p style="text-align: justify;">Создадим инфоблок в новом типе:</p> <p><img src="/upload/medialibrary/d4b/d4b3147a8a0645f2e351ef26b81789a6.png" title="создание инфоблока" hspace="5" vspace="5" border="0" alt="создание инфоблока" width="700" height="284" /></p> <p style="text-align: justify;">Основные настройки для данного инфоблока будут:</p> <p> </p> <ul> <li style="text-align: justify;">Инфоблок будет активен</li> <li style="text-align: justify;">Символьный код - MAIN_SLIDER</li> <li style="text-align: justify;">Выберем один из сайтов системы в качестве сайта по умолчанию (тот, где будет использоваться слайдер)</li> <li style="text-align: justify;">Уберём галочки индексации разделов и элементов для поиска (нет смысла искать слайдер)</li> <li style="text-align: justify;"><i>Поставим совместных режим просмотра элементов и разделов</i> (это сугубо личное предпочтение автора урока)</li> <li style="text-align: justify;">Дадим доступ на чтение тем группам пользователей, которым он необходим. Если вы работаете над уже запущенным проектом в скрытом разделе, то возможно доступ для всех и не нужен. Однако <i>мы сразу установим чтение для всех, в том числе неавторизованных юзеров</i>, чтобы не возвращаться потом к этому вопросу.</li> </ul> <p></p> <p> <img src="/upload/medialibrary/953/95371f3a5d92838453d545f8ad8d97dc.png" title="основные настройки инфоблока слайдера" hspace="5" vspace="5" border="0" alt="основные настройки инфоблока слайдера" width="700" /> </p> <p><img src="/upload/medialibrary/822/822caafcc070a9204e13d15296be0c8e.png" title="настройки доступа инфоблока сладйера" hspace="5" vspace="5" border="0" alt="настройки доступа инфоблока сладйера" width="700" /></p> <p style="text-align: justify;"> Теперь в новом инфоблоке необходимо создать активные элементы, соответствующие слайдам. </p> <p>Можно создать руками все элементы:</p> <p><img src="/upload/medialibrary/f6e/f6e696f20bf29d4b545cf4cfc8c1388b.png" title="создание элемента инфоблока слайдера" hspace="5" vspace="5" border="0" alt="создание элемента инфоблока слайдера" width="700" height="460" /></p> <p style="text-align: justify;">Важно при этом не забыть:</p> <p> </p> <ul> <li style="text-align: justify;">поставить галочку активности элементов</li> <li style="text-align: justify;">заполнить название (это обязательный пункт), например порядковым номером слайдера</li> <li style="text-align: justify;">в поле &quot;картинка для анонса&quot; приложить изображение</li> </ul> <p></p> <p style="text-align: justify;">Для этого урока нами был создан вручную только 1 элемент. Далее мы экспортировали его в XML и добавили информацию о ещё 2 слайдах. Вы можете найти файлы для импорт (XML и картинки) в нашем репозитории на GitHub.</p> <p> <img src="/upload/medialibrary/70e/70ef58c033ce93a287e8cac3ffe06135.png" title="импорт элементов инфоблока из XML" hspace="5" vspace="5" border="0" alt="импорт элементов инфоблока из XML" width="700" height="408" /> </p> <h3>Интеграция дизайна слайдера в шаблон компонента bitrix:news.list</h3> <p style="text-align: justify;">Разместим на странице 1.php, которую мы создали выше для этих целей компонент:</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;?$APPLICATION-&gt;IncludeComponent( <br /> &quot;bitrix:news.list&quot;, <br /> &quot;&quot;, <br /> Array( <br /> <span style="background-color: rgb(255, 0, 0);"> &quot;IBLOCK_ID&quot; =&gt; &quot;MAIN_SLIDER&quot;</span> <br /> ), <br /> false <br /> );?&gt;</td></tr> </tbody> </table> <p style="text-align: justify;"><b>Обращаем внимание на выделенную красным строку - мы сразу задаём в параметрах компонента КОД информационного блока!</b></p> <p style="text-align: justify;">Поскольку ваша сборка 1С-Битиркс может отличаться от той на которой делается данный урок, то у вас уже могли быть ранее созданы инфоблоки и ID не совпадает с нашим. Если вы следовали нашим инструкциям выше, то символьный код у вас будет идентичен нашему.</p> <p style="text-align: justify;">Копируем шаблон компонента дефолтный шаблон компонента списка новостей в шаблон сайта:</p> <p style="text-align: justify;"><img src="/upload/medialibrary/632/632a4b5a1151acf79330b8694d9029f3.png" title="копируем системный шаблон компонента .default в шаблон сайта" hspace="5" vspace="5" border="0" alt="копируем системный шаблон компонента .default в шаблон сайта" width="712" height="279" /></p> <p style="text-align: justify;">Теперь модифицируем шаблон компонента списка новостей /bitrix/templates/stylish/components/bitrix/news.list/main_slider/template.php:</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;?if(!defined(&quot;B_PROLOG_INCLUDED&quot;) || B_PROLOG_INCLUDED!==true)die();?&gt; <br /> <br /> &lt;div class=&quot;slider&quot;&gt; <br /> &lt;div class=&quot;camera_wrap&quot;&gt; <br /> &lt;?foreach($arResult[&quot;ITEMS&quot;] as $arItem):?&gt; <br /> &lt;div data-src=&quot;&lt;?=$arItem[&quot;PREVIEW_PICTURE&quot;][&quot;SRC&quot;]?&gt;&quot;&gt;&lt;/div&gt; <br /> &lt;?endforeach;?&gt; <br /> &lt;/div&gt; <br /> &lt;/div&gt;</td></tr> </tbody> </table> <p style="text-align: justify;">Как видите, мы удалили всё лишнее и оставили только самое необходимое:</p> <p> </p> <ul> <li style="text-align: justify;">подключение пролога</li> <li style="text-align: justify;">разметку вокруг баннерного блока</li> <li style="text-align: justify;">цикл для непосредственного вывода баннеров</li> <li style="text-align: justify;">вывод картинки анонса</li> </ul> <p></p> <p>Поскольку слайдер выводится только на одной из страниц HTML вёрстки, то мы поместим вызов компонента слайдера во включаемую область, применяемую для файла.</p> <p>Теперь осталось поместить код вызова компонента слайдера в файл включаемой области index_slider.php (собственно имя файла включаемой области состоит из имени файла для которого включаемая область отображается и идентификатора, который используется в вызове компонента включаемой области):</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;?$APPLICATION-&gt;IncludeComponent(&quot;bitrix:news.list&quot;, &quot;main_slider&quot;, Array( <br /> &quot;IBLOCK_ID&quot; =&gt; &quot;MAIN_SLIDER&quot;, // Код информационного блока <br /> ), <br /> false <br /> );?&gt;</td></tr> </tbody> </table> <p><font color="#ff0000"><b>ВАЖНО!</b></font> Не забудьте удалить файл (1.php в нашем случае) в котором велась разработка, когда он перестанет быть нужен! </p> <p>В шаблоне же необходимо вызвать компонент:</p> <table border="1" cellpadding="1" cellspacing="1"> <tbody> <tr><td>&lt;?$APPLICATION-&gt;IncludeComponent( <br /> &quot;bitrix:main.include&quot;, <br /> &quot;&quot;, <br /> Array( <br /> &quot;AREA_FILE_SHOW&quot; =&gt; &quot;page&quot;, <br /> &quot;AREA_FILE_SUFFIX&quot; =&gt; &quot;slider&quot;, <br /> &quot;EDIT_TEMPLATE&quot; =&gt; &quot;&quot; <br /> ) <br /> );?&gt;</td></tr> </tbody> </table> <p>   </p> <p><font color="#ff0000">Не забудьте удалить из папки /img/ в шаблоне сайта картики баннеров для слайда (slide1.jpg, slide2.jpg, slide3.jpg) - теперь слайды берутся компонентом из инфоблока!</font></p> <p> <br /> </p> <p>Результаты работы данного урока, как всегда, можно скачать <noindex><a href="https://github.com/lexnekr/bitrixtemplate_stylish/tree/1d73651e74680ab029f7f9582b45169e3abbeb33" target="_blank" rel="nofollow" >на GitHub</a></noindex>.</p> <div style="text-align: right;"><a href="http://plus.google.com/+АлексейЗадойный?rel=author" target="_blank">Задойный А.В.</a></div>

Возврат к списку

Яндекс.Метрика